package com.starmark.sys.login.api.service;


import com.starmark.sys.login.api.dto.UserInfoDto;
import com.starmark.sys.login.api.dto.UserLoginToken;

/**
 * 实现系统登陆方式的接口
 */
public interface ISysLoginService {


    /**
     * 通过token查找用户的信息
     * 可以是通过登陆名,也可以通过手机号,关键是UserNameLoginToken的构造成生成
     *
     * @param userLoginToken 登陆不期而遇形式
     * @return 登陆者用户信息
     */


    UserInfoDto loadUserByToken(UserLoginToken userLoginToken);

    /**
     * 判断是否是该登陆类型的实现类
     *
     * @param loginType 登陆方式
     * @return 是否支持登陆方式
     */

    boolean isSupportLogin(String loginType);

    /**
     * 判断登陆密码是否正确
     *
     * @param userLoginToken 登陆信息
     * @param userInfoDto       用户信息
     * @return 登陆密码是否正确结果
     */
    boolean isPasswordMatch(UserLoginToken userLoginToken,  UserInfoDto userInfoDto);
}
